void main() {
  func(() {
    print('我被执行了');
  });

  func1((String str, int age) {
    print('我被执行了 $str,$age');
  });
}

// 1. 函数可以作为对象赋值给其他变量
void func(Function callback) {
  //callback相当于一个参数，上面传递啥callback就接收啥，再这里传递的是函数，所以callback接收的就是函数
  callback();
}

// 回调函数：
//   把一个函数作为参数传递给另一个函数，在另一个函数中调用这个函数
// 回调函数类型约束
//   ArkTS 写法：(data:string) => void
//   Dart  写法：void Function(String data)
// 2. 函数可以作为参数传递给其他函数
void func1(void Function(String str, int age) callback) {
  callback('张三丰', 500);
}
//(void Function(String str, int age) callback)
//void 是返回值，
//Function(String str, int age)类型   (String str, int age）传参
//callback相当于变量

